package response.wechat;

import cn.hutool.core.date.DateUtil;
import enums.DeletedStatus;
import enums.Gender;
import wechat.WebUser;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class WebUserDTO {


    public String id ;

    /**
     * 用户头像路径.
     * <p/>
     * 保存微信文件到本地.
     */
    public String headImgUrl;


    /**
     * 用户的昵称
     */
    public String nickName;

    /**
     * 姓名
     */
    public String realName;

    /**
     * 联系电话
     */
    public String phone;
    /**
     * 性别
     */
    public Gender sex;

    /**
     * 生日
     */
    public String birthDay;

    /**
     * 默认公司圈子名称
     */
    public String companyName ;



    /**
     *  默认自提地址
     */
    public String deliveryAddress;

    /**
     * 逻辑删除,0:未删除，1:已删除
     */
    public DeletedStatus deleted;

    /**
     * 二维码
     */
    public String qrCode ;

    /**
     * 创建日期
     */
    public String createAt ;

    /**
     * 被关注数量
     */
    public long attentedNum;

    /**
     * 备注
     */
    public String remark;


    /**
     * 纬度
     */
    public String latitude ;

    /**
     * 经度
     */
    public String longitude ;


    /**
     *  当前所在省份
     */
    public String currentProvince ;

    /**
     *  当前所在城市
     */
    public String currentCity ;

    /**
     *  所在 区 / 县 / 镇
     */
    public String currentRegion ;

    /**
     * 账户余额
     */
    public BigDecimal balance ;


    /**
     *
     * @param webUser
     * @return
     */
    public static WebUserDTO transform(WebUser webUser){
        WebUserDTO userDTO = null ;
        if(webUser != null && webUser.getId() != null){
            userDTO = new WebUserDTO() ;
            userDTO.id = webUser.getId();
            userDTO.headImgUrl = webUser.headImgUrl ;
            userDTO.nickName = webUser.nickName ;
            userDTO.realName = webUser.realName != null ? webUser.realName : webUser.nickName ;
            userDTO.phone = webUser.phone ;
            userDTO.sex = webUser.sex ;
            userDTO.qrCode = webUser.qrCode;
            userDTO.birthDay = DateUtil.formatDate(webUser.birthDay);

            userDTO.deliveryAddress = webUser.deliveryAddress;
            userDTO.createAt = DateUtil.formatDateTime(webUser.createAt);

            userDTO.latitude = webUser.latitude;
            userDTO.longitude = webUser.longitude;
            userDTO.currentCity = webUser.currentCity;
            userDTO.currentRegion = webUser.currentRegion;
            userDTO.currentProvince = webUser.currentProvince;

            userDTO.balance = webUser.balance;

        }

        return  userDTO ;
    }


    /**
     *
     * @param userList
     * @return
     */
    public static List<WebUserDTO> transformList(List<WebUser> userList){
       List<WebUserDTO> dtoList = null;

       if(userList != null && userList.size() > 0){
           dtoList = new ArrayList<>();
           for(WebUser user : userList){
               WebUserDTO userDTO = WebUserDTO.transform(user);
               dtoList.add(userDTO);
           }
       }
        return  dtoList ;
    }


}
